#include <faker/basic/Vertex.h>

using namespace Faker::Basic;

std::vector<Gut::VertexLayout> VertexPos::inputLayout = {
    {"POSITION", 0, 3, GL_FLOAT, GL_FALSE, offsetof(VertexPos, pos)},
};

VertexPos::VertexPos(glm::vec3 p)
    : pos(p)
{
}

std::vector<Gut::VertexLayout> VertexPosTex::inputLayout = {
    {"POSITION", 0, 3, GL_FLOAT, GL_FALSE, offsetof(VertexPosTex, pos)},
    {"TEXCOORD", 1, 2, GL_FLOAT, GL_FALSE, offsetof(VertexPosTex, tex)},
};

std::vector<Gut::VertexLayout> VertexPosColor::inputLayout = {
    {"POSITION", 0, 3, GL_FLOAT, GL_FALSE, offsetof(VertexPosColor, pos)},
    {"TEXCOORD", 1, 4, GL_FLOAT, GL_FALSE, offsetof(VertexPosColor, color)},
};

std::vector<Gut::VertexLayout> VertexPosNormalTex::inputLayout = {
    {"POSITION", 0, 3, GL_FLOAT, GL_FALSE, offsetof(VertexPosNormalTex, pos)},
    {"NORMAL", 1, 3, GL_FLOAT, GL_FALSE, offsetof(VertexPosNormalTex, normal)},
    {"TEXCOORD", 2, 2, GL_FLOAT, GL_FALSE, offsetof(VertexPosNormalTex, tex)},
};
